package com.example.administrator.mymodlemediator.中介;

import com.example.administrator.mymodlemediator.同事.CD机;
import com.example.administrator.mymodlemediator.同事.CPU;
import com.example.administrator.mymodlemediator.同事.Colleague;
import com.example.administrator.mymodlemediator.同事.声卡;
import com.example.administrator.mymodlemediator.同事.显卡;

/**
 * 文 件 名: 主板
 * 创 建 人: banbury
 * 创建日期: 2017/4/7 0007 10:21
 * 邮   箱:
 * 博   客:
 * 修改时间：
 * 修改备注：
 */

public class 主板 extends Mediator {
    private CD机 cd机;
    private CPU cpu;
    private 声卡 声卡;
    private 显卡 显卡;

    public void setCd机(CD机 cd机) {
        this.cd机 = cd机;
    }

    public void setCpu(CPU cpu) {
        this.cpu = cpu;
    }

    public void set声卡(com.example.administrator.mymodlemediator.同事.声卡 声卡) {
        this.声卡 = 声卡;
    }

    public void set显卡(com.example.administrator.mymodlemediator.同事.显卡 显卡) {
        this.显卡 = 显卡;
    }


    @Override
    public void change(Colleague colleague) {
        if (colleague == cd机) {
            //cd机有数据了，让主板进行下一步操作
            cdHandler();
        }
        if (colleague == cpu) {
            //cpu数据处理好了，让主板进行下一步操作
            cpuHandler();
        }
    }

    /**
     * 取数据，并把数据交给cpu去解析
     */
    private void cdHandler() {
        String read = cd机.read();
        cpu.decode(read);
    }


    /**
     * 把cpu解析处理的数据，分别交给对应的零件去处理
     */
    private void cpuHandler() {
        声卡.playVoice(cpu.getSound());
        显卡.playImage(cpu.getImage());
    }
}
